﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using BUS;
using DTO;
using DAO;
namespace vantai
{
    public partial class laplichdi : Form
    {
        public laplichdi()
        {
            InitializeComponent();
        }

        private void laplichdi_Load(object sender, EventArgs e)
        {
            LaplichdiBUS BUS = new LaplichdiBUS();
            comboBox1.DataSource = BUS.loadmatuyen();
            comboBox1.DisplayMember = "TenTuyen";
            comboBox1.ValueMember = "MaTuyen";

            comboBox4.DataSource = BUS.loadxe();
            comboBox4.DisplayMember = "Maxe";
            comboBox4.ValueMember = "Maxe";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //if (MessageBox.Show("Bạn có muốn thêm", "Thông báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
            //{
            //    if ((dateTimePicker1.Value.Date > DateTime.Now) && (dateTimePicker3.Value.Date >= dateTimePicker2.Value.Date))
            //    {
            //        LaplichdiBUS BUS = new LaplichdiBUS();
            //        LaplichdiDTO DTO = new LaplichdiDTO(Int32.Parse(comboBox1.SelectedValue.ToString()), Int32.Parse(comboBox4.SelectedValue.ToString()), dateTimePicker1.Value.Date, dateTimePicker2.Value, dateTimePicker3.Value, Int32.Parse(comboBox2.SelectedItem.ToString()), Int32.Parse(comboBox3.SelectedItem.ToString()));

            //        if (BUS.laplich(DTO) == false)
            //        {
            //            MessageBox.Show("Đã tồn tại lịch đi");
            //        }
            //        else
            //        {
            //            MessageBox.Show("Thành Công");
            //        }
            //    }
            //    else
            //    {
            //        MessageBox.Show("Ngày Đi phải hơn ngày hiện tại và giờ đến phải nhiều hơn giờ đi");
            //        }
            //    }
            }

        //private void button2_Click(object sender, EventArgs e)
        //{
        //    this.Close();
        //}

        private void ThemLichDiTXDTMucSQLServer()
        {
            // goi store proceduce tu sqlserver

            if (MessageBox.Show("Bạn có muốn lập lịch này không ?", "Thông báo", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                if ((dateTimePicker1.Value.Date > DateTime.Now) && (dateTimePicker3.Value.Date >= dateTimePicker2.Value.Date))
                {
                    LaplichdiBUS BUS = new LaplichdiBUS();
                    int matuyen = Int32.Parse(comboBox1.SelectedValue.ToString());
                    int maxe = Int32.Parse(comboBox2.SelectedValue.ToString());
                    DateTime ngaydi = dateTimePicker1.Value.Date;
                    DateTime tgiandi = dateTimePicker2.Value;
                    DateTime tgiandkden = dateTimePicker3.Value;
                    int sltxe = Int32.Parse(comboBox4.SelectedItem.ToString());
                    int slpl = Int32.Parse(comboBox3.SelectedItem.ToString());

                    LaplichdiDTO DTO = new LaplichdiDTO(matuyen, maxe, ngaydi, tgiandi, tgiandkden, sltxe, slpl);

                    if (BUS.laplich(DTO) == false)
                    {
                        MessageBox.Show("Đã tồn tại lịch đi");
                    }
                    else
                    {
                        MessageBox.Show("Thành Công");
                    }
                }
                else
                {
                    MessageBox.Show("Ngày Đi phải hơn ngày hiện tại và giờ đến phải nhiều hơn giờ đi");
                }
            }


        }

        private void ThemLichDiTXDTMucUngDung()
        {
            // sqltransaction
            SqlTransaction transaction = null;
            SqlConnection connection=null;
            try
            {
                // cac tham so
                int matuyen=Int32.Parse(comboBox1.SelectedValue.ToString());
                int maxe=Int32.Parse(comboBox2.SelectedValue.ToString());
                DateTime ngaydi=dateTimePicker1.Value.Date;
                DateTime tgiandi=dateTimePicker2.Value;
                DateTime tgiandkden=dateTimePicker3.Value;
                int sltxe=Int32.Parse(comboBox4.SelectedItem.ToString());
                int slpl=Int32.Parse(comboBox3.SelectedItem.ToString());


                String connectionstring = Login.constringFromLogin;
                
                connection = new SqlConnection(connectionstring);
                connection.Open();
                SqlCommand cmd = connection.CreateCommand();
                transaction = connection.BeginTransaction("dirty read");// begin tran
                cmd.Connection = connection;
                cmd.Transaction = transaction;
                cmd.CommandText = "insert into lichdi values("+matuyen+","+maxe+",'"+ngaydi+"','"+tgiandi+"','"+tgiandkden+"',"+sltxe+","+slpl+","+0+","+0+")";
                cmd.ExecuteNonQuery();

                transaction.Commit();
                
            }
            catch (Exception ex)
            {
                try{
                    if(transaction!=null)
                        transaction.Rollback();

                }catch(Exception ex2){
                    MessageBox.Show(ex2.Message);
                }
            }

            connection.Close();
            

        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            // 
            if (rdbXLTXDTmucSQL.Checked)
            {
                ThemLichDiTXDTMucSQLServer();
            }
            else
            {
                if (rdbXLTXDTmucUngDung.Checked)
                {
                    ThemLichDiTXDTMucUngDung();
                }
            }


            //
        }

        private void button2_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }

        private void laplichdi_Load_1(object sender, EventArgs e)
        {

            LaplichdiBUS BUS = new LaplichdiBUS();
            comboBox1.DataSource = BUS.loadmatuyen();
            comboBox1.DisplayMember = "TenTuyen";
            comboBox1.ValueMember = "MaTuyen";

            comboBox2.DataSource = BUS.loadxe();
            comboBox2.DisplayMember = "Maxe";
            comboBox2.ValueMember = "Maxe";
        }
            
        }
    }
